This invention relates to computer systems in which peripheral units are interconnected with a CPU via an input/output bus and particularly relates to an expanded computer system having a plurality of modular units serially connected to a main bus and an expansion bus.
Many computer systems are known which employ a large number of modular units for attaching to a main bus and to an expansion bus. Moreover, with the increasing popularity of computers for business, office, and home uses, the trend for design of popular computer systems has been to simplify the basic function performed by each modular unit so as to permit the modular units to be easily added to an existing computer bus.
Refer now to FIG. 1. FIG. 1 shows a conventional, expanded computer system having a main bus 80 and an expansion bus 70. Connected to the main bus 80 is a system controller 10 and a plurality of processors 12, 14, etc., which terminate in a controller module 20. In this configuration, the controller module 20 is itself connected to an expansion bus and is followed by a plurality of serially connected storage units 30, 40, 50 and 60.
One of the problems encountered in using the expanded modular computer system as shown in FIG. 1 has been the problem of identifying the storage units attached to the expansion bus. As an illustration, refer to FIG. 2.
FIG. 2 shows a simplified diagram of a typical modular unit 202 as it appears when physically connected to the expansion bus. Modular unit 202 would include drive unit 5 attached to a mother board 8. Mother board 8 would be connected to adjacent modular units by input header 7 which is coupled to drive 5 by a plurality of trace lines 6. Within the drive 5, is a microprocessor 1 which is coupled to an ID header 2 by internal lines 4. The ID header 2 is in turn provided with a plurality of ID pins 3 which serve to provide the address for the modular unit shown in FIG. 2.
One problem in the prior art for the unit shown in FIG. 2 is that the ID headers do not come with the identification pins preconnected. Thus, it has been necessary for the end user to provide jumpers to connect the pins in the ID headers as shown in FIG. 3 to provide the unit with an address. By selectively connecting the identification pins 3, the end user is able to simulate digital bits which serve to identify the address for the particular module. Thus, in the example shown. FIG. 3, a 011 jumper configuration would indicate that the particular module had an address of "5".
Several problems are encountered in this arrangement. First, the ID headers are typically located deep within a recess in the drive housing and it has been very difficult for an end user to physically obtain access to the ID pin to provide the desired jumper connection. In order to make the proper jumper connections, it has been necessary to either insert fingers deep inside these recessed areas or to actually take the drive unit apart. Also an unsophisticated end user might have absolutely no knowledge of the need to jumper the identification pins, and might experience difficulty in conveniently locating the pins even if aware of the need to provide some identification scheme at the point of end use.
An additional inconvenience is that the end user must remember the jumper configuration from module to module in order to avoid accidentally giving two modules the same ID number. Finally, by using this particular identification technique, once an individual user identifies a module with a particular address, the user would be required to rejumper the ID pins in order to provide the module with a new address or to place the module at another address along the bus that was already identified with another module.
Moreover, it is well known that there are practical limits to the distances that modules can be attached from a main system controller when connected to a controller by a bus. Thus, a problem arises as to devising an automatic addressing method whereby the storage units which are attached to the expansion bus can be properly identified without relying on the main system controller.